#ifndef __BFSTREE_H_
#define __BFSTREE_H_

#include <iostream>
#include <vector>

// class BFSTree 
class BFSTree_t  {
 private:
  int data;
  std::vector < BFSTree_t * > * children;  //!< vector of children

 public:
  BFSTree_t();
  
  BFSTree_t(int);

  ~BFSTree_t();
  
  /**
   * \brief Gets an iterator to the first child 
   * @return returns a vector iterator to the first child of this node
   */
  std::vector < BFSTree_t * >::iterator begin();

  int AddChild(int);

  void setData(int);
};
#endif
